The present invention relates to a method and apparatus for allocating bits in a statistical multiplexing system. In particular, an architecture is disclosed for Statistical Multiplexing (stat mux) of both compressed and uncompressed video signals. Dynamic bit allocation and rate control are provided. Additionally, upper and lower program bit rates boundaries are specified to prevent the encoder and decoder buffers from overflowing or underflowing.
With recent advances in digital video compression, such as used in the MPEG-2 standard, and digital data transmission techniques, it is possible to deliver several digitally compressed video programs in the same bandwidth presently occupied by a single analog television (TV) channel. These capabilities provide opportunities for programming service providers (e.g., broadcasters such as CNN, ABC), network operators (e.g., cable and satellite network owners), and end users.
In a multi-program transmission environment, several programs (e.g., channels) are coded, multiplexed and transmitted over a single communication channel. Since these programs share a limited channel capacity, the aggregate bit rate of the programs must be no greater than the communication channel rate. This can be achieved by controlling either each individual program bit rate using independent coding, or the aggregate bit rate using statistical multiplexing, also known as joint coding. A statistical multiplexer is referred to herein as a "stat mux", while statistical multiplexing is referred to as "stat muxing". With independent coding, rate control can only be performed across the time and spatial dimensions of a program. However, in stat muxing or joint coding, control is extended to an additional dimension; that is, the program dimension. As a result, there is greater freedom in allocating the channel capacity among programs and therefore more control of picture quality among programs as well as within a program.
However, such systems generally process one picture at a time from each channel (e.g., at a common frame, instance), and do not account for the Group of Picture (GOP) configurations of the data streams or the picture type.
A GOP is a group of one or more consecutive pictures. A GOP may contain intra-coded pictures (I-pictures), predictive coded picture (P-pictures) and/or bi-directional predictive coded pictures (B-pictures), for example. Different channels may have different GOP lengths and configurations. A GOP can also consist of progressively refreshed pictures where there are no I-pictures. However, in a P-picture, a portion, e.g. slice, of the picture is coded as I-blocks. The location of I-blocks changes from one P-picture to another.
Moreover, video materials such as films and the like may be pre-compressed and stored for subsequent transmission. These pre-compressed video may be coded at either a constant bit rate (CBR) or a variable bit rate (VBR). This presents difficulties when the stat mux attempts to integrate the pre-compressed program bit streams with the raw, uncompressed digital video sequences.
Accordingly, it would be desirable to have a stat mux system that is able to handle pre-compressed data that is at either a constant bit rate (CBR) or variable bit rate (VBR), along with uncompressed video data.
The stat mux system should use the GOP structure of the video channels to provide an efficient bit allocation technique.
The stat mux system should further account for the picture type in each GOP in allocating bits.
The stat mux system should assign the same, or similar, number of bits to frames of the same picture type for continuous scenes.
The stat mux system should further account for a relative priority of the channels, as well as the complexity level of each frame.
The stat mux system should be compatible with existing digital video standards such as MPEG-2.
The stat mux system should prevent encoder or decoder buffer overflow or underflow.
The stat mux system should provide constraints on target bit rates, including constraints on overall minimum and maximum bit rates.
Furthermore, for super GOP and super frame bit allocation schemes, the stat mux system should provide target bit rates, and constraints on the target bit rates, for super GOPS, super frames, and regular frames, as well as constraints on overall minimum and maximum bit rates.
The present invention provides a system having the above and other advantages.